package 异常的处理.异常的处理流程;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-21
 * Time: 19:39
 */
/*
关于 "调用栈"
方法之间是存在相互调用关系的, 这种调用关系我们可以用 "调用栈" 来描述. 在 JVM 中有一块内存空间称为
"虚拟机栈" 专门存储方法之间的调用关系. 当代码中出现异常的时候, 我们就可以使用 e.printStackTrace(); 的
方式查看出现异常代码的调用栈.

如果本方法中没有合适的处理异常的方式，就会沿着调用栈向上传递
 */
public class Test {
    public static void func() {
        int[] array = {1, 2, 3, 4, 5};
        System.out.println(array[10]);
    }

    public static void main(String[] args) {
        try {
            func();
        } catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
        }
        System.out.println("after try catch");
    }
}

/*
执行结果：
java.lang.ArrayIndexOutOfBoundsException: 10
	at 异常的处理.异常的处理流程.Test.func(Test.java:21)
	at 异常的处理.异常的处理流程.Test.main(Test.java:26)
after try catch
 */
